// https://leetcode.cn/problems/min-max-game/description/

// func min(a, b int) int {
// 	if a > b {
// 		return b
// 	}
// 	return a
// }
// func max(a, b int) int {
// 	if a > b {
// 		return a
// 	}
// 	return b
// }

func minMaxGame(nums []int) int {
    for ; len(nums) > 1; {
		newnums := make([]int, len(nums) / 2)
		for j := 0; j < len(nums) / 2; j++ {
			if j % 2 == 0 {
				newnums[j] = min(nums[2 * j], nums[2 * j + 1])
			} else {
				newnums[j] = max(nums[2 * j], nums[2 * j + 1])

			}
		}
		nums = newnums
	}
	return nums[0]
}